package com.dhcc.bpm.modules.scf.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dhcc.bpm.modules.scf.dto.ScfSalesDetailsInfoDTO;
import com.dhcc.bpm.modules.scf.entity.ScfSalesDetailsInfo;
import com.dhcc.bpm.modules.scf.vo.ScfSalesDetailsInfoVO.ScfGetSalesDetailVO;
import com.dhcc.bpm.modules.scf.vo.ScfSalesDetailsInfoVO.ScfGetSalesListVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * Mapper 接口
 *
 * @author liuguoting
 * @since 2023-10-12
 */
@Repository
public interface ScfSalesDetailsInfoMapper extends BaseMapper<ScfSalesDetailsInfo> {

    /**
     * 自定义分页
     *
     * @param page
     * @param scfSalesDetailsInfo
     * @return
     */
    List<ScfGetSalesListVO> selectScfSalesDetailsInfoPage(IPage<ScfGetSalesListVO> page, ScfSalesDetailsInfoDTO scfSalesDetailsInfo);

    /**
     * 查询详情
     *
     * @param rowId
     * @return
     */
    ScfGetSalesDetailVO getDetail(String rowId);

    /**
     * @param rowId           销售明细记录编号
     * @param carbonEmissions 计算得到的减少碳排放量
     * @return
     */
    int updateCarbonEmissionsByGoodsNumInt(String rowId, String carbonEmissions);

    /**
     * 查询所有的未对账及对账失败的销售明细
     *
     * @return
     */
    List<ScfSalesDetailsInfo> selectAll();

    /**
     * 批量更新销售明细信息
     *
     * @param list 更新的销售明细列表
     * @return 更新的记录数
     */
    int updateBatch(List<ScfSalesDetailsInfo> list);

    /**
     * 查询是否已生成过销售明细
     *
     * @param recyclingInNum
     * @return
     */
    String  selectRowIdByRecyclingInNum(String recyclingInNum);

    /**
     * 根据利废入库单号删除旧的销售明细记录
     *
     * @param recyclingInNum
     * @return
     */
    int deleteByRecyclingInNum(String recyclingInNum);
}
